package com.itany.corejava.code04_循环结构;

/**
 * @author 石小俊
 * @date 2024年01月2024/1/10日 14:17
 * 假设1+2+3+...+N > 3000,求N的最小值
 */
public class Test02_练习 {
    public static void main(String[] args) {
        // 方式一
        int num = 1;
        int sum = 0;
        while (sum <= 3000) {
            // 当num的值为77时,其总和为1+2+3+...+76,其结果<=3000
            // 继续执行循环
            // sum+=77 > 3000
            sum += num;
            // num=77+1=78
            num++;
        }
        // 此时num的值已经是78了,但是总和到77就已经够了
        System.out.println("N的最小值为:" + (num - 1));

        // 方式二
        int num2 = 0, sum2 = 0;
        while (sum2 <= 3000) {
            // 当num2的值为76时,满足条件,执行循环
            // num2+1=77
            num2++;
            // sum2+77=3003
            // 再次执行循环时,不满足循环条件,跳出循环
            sum2 += num2;
        }
        System.out.println("N的最小值为:" + num2);
    }
}
